package client;

import java.awt.event.*;

import javax.swing.*;
import java.awt.*;
/**
 * Panneau pour se connecter au serveur
 * @author CONSTANTIN Laurent
 * @version 1.0
 */
public class JPanelConnect extends JPanel{

	private static final long serialVersionUID = 5353864652878578096L;
	// L'applic client
	private ClientApplication clientApp;
	// Les zones de saisies
    private JTextField inputIp = new JTextField(SettingsClient.IP);
    private JTextField inputPort = new JTextField(SettingsClient.PORT.toString());
    // Le bouton
    private JButton btnOK = new JButton("Se Connecter");
    
    /**
     *  Lance une connection avec les valeurs saisies
     */
    public void connect(){
        clientApp.connect(inputIp.getText(),inputPort.getText());
    };
    /**
     * Constructeur
     * @param clientApp L'application client
     */
    public JPanelConnect(ClientApplication clientApp){
    	
    	this.clientApp = clientApp;
        // Conteneur pour la mise en forme
    	JPanel haut = new JPanel();
        haut.setLayout(new GridLayout(1,2));
        JPanel bas = new JPanel();
        bas.setLayout(new GridLayout(1,2));
        setLayout(new BoxLayout(this,2));
        
        // Tailles
        setPreferredSize(new Dimension(250,110));
        setSize(600,80);
        inputIp.setPreferredSize(new Dimension(100,20));
        inputPort.setPreferredSize(new Dimension(100,20));

        // Action sur le bouton de connexion
        btnOK.addActionListener( new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JPanelConnect.this.connect();
            }
        });
        
        // Action de la touche ENTER sur les JTextFields
        KeyAdapter pressEnter = new KeyAdapter() {  
      	   public void keyPressed(KeyEvent e) {
      		  if(e.getKeyCode() == 10){
      			  JPanelConnect.this.connect();
      		  }
      	   }
         };       
        inputIp.addKeyListener(pressEnter);
        inputPort.addKeyListener(pressEnter);
        
        setLayout(new FlowLayout());
        
        // Ajoute les composants
        add(new JLabel("Connection au serveur :"));
        haut.add(new JLabel("Hote : "),LEFT_ALIGNMENT);
        haut.add(inputIp,RIGHT_ALIGNMENT);
        bas.add(new JLabel("Port : "),LEFT_ALIGNMENT);
        bas.add(inputPort,RIGHT_ALIGNMENT);

        add(haut);
        add(bas);
        add(btnOK,RIGHT_ALIGNMENT);        
    }
}
